\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{report_perso}[2008/10/23 Extension personnelle, V1.0]

%%%%%%%%%%%%%%%%
%% Extensions %%
%%%%%%%%%%%%%%%%
\RequirePackage{lmodern}								%% Pour avoir un beau PDF vectoriel
\RequirePackage{url}									%% Gestion des url
\RequirePackage[utf8]{inputenc}							%% Encodage UTF-8
%\RequirePackage{xltxtra}
\RequirePackage[T1]{fontenc}							%% Correspondance clavier -> document
\RequirePackage[french]{babel}							%% Typo française et accent
\RequirePackage{fancyhdr}								%% Gestion du style de page, en tête et pied de page
\RequirePackage{cite}									%% Permet la citation de bibliographie
\RequirePackage[pdftex]{graphicx}						%% Insertion des images
\RequirePackage{geometry}								%% Redimensionnement perso de la page
\RequirePackage{lastpage}								%% Obtenir la dernière page
%\RequirePackage[version=3]{mhchem}						%% Ecrire de la chimie
\RequirePackage{setspace}								%% Pour l'interligne
\RequirePackage{float}									%% Float
\RequirePackage[nottoc, notlof, notlot]{tocbibind}  	%% Créer des entrées dans la toc pour la biblio
\RequirePackage{appendix}								%% annexes
\RequirePackage{pdfpages}								%% Insertion de pdf
\RequirePackage{listings}								%% Insertion de code source
\RequirePackage{subfig}
\RequirePackage{caption}
\RequirePackage{microtype}								%% améliorations typographiques

\RequirePackage[babel]{csquotes}						%% Utilisation correct des guillemets
\MakeAutoQuote{«}{»}
\RequirePackage{framed}

%\RequirePackage[Lenny]{fncychap}						%% Chapitre personnalisé
%\RequirePackage{wrapfig}								%% Positionement des images
%\RequirePackage{eurosym}								%% Signe euro
%\RequirePackage{openbib}								%% Gestion avancée de la bibliographie
%\RequirePackage{minitoc}								%% Table des matières dans les chapitres
%\RequirePackage{makeidx}								%% Gestion de l'index
\RequirePackage[pdftex,svgnames]{xcolor}				%% Couleur
\RequirePackage[linktocpage,colorlinks=true]{hyperref}	%% Gestion des hyperliens

%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Disposition de la page %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\geometry{a4paper,nohead}

%% Marges %%
\hoffset		= -1.5cm								%% marge gche = 2.54cm + Xcm
\voffset		= 0cm									%% marge haut = 2.54 cm + X cm

\oddsidemargin	= 0.6cm									%% espace entre marge gauche et corps
\marginparsep	= 0.4cm									%% espace entre marge droite et corps
\marginparwidth	= 0.2cm									%% marge à droite 

%% Corps %%
\textheight		= 25cm									%% longueur du corps
\textwidth		= 16cm									%% largeur du corps

%% Entête et pied de page %%
\headheight		= 0cm									%% taille entete (18)
\footskip		= 2.8cm									%% taille pied de page
\headsep		= 0cm									%% espace entre entete et corps (25)
\topmargin		= 0cm									%% espace entre marge haut et entete


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Mise en page des paragraphes %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%\setlength{\parindent}{0pt}                          %% Indentation entre chaque paragraphe
%\lettrine[options]{lettrine}{texte}                  %% Commencer un paragraphe par une lettrine
%\hspace{longueur}                                    %% Definition de l'espacement horizontale entre les mots
%\vspace{longueur}                                    %% Definition de l'espacement verticale entre les lignes
%\stretch{n}                                          %% Production d'un espace élastique, à introduire comme longueur dans \vspace et \hspace
%\footnote{ceci est une note de bas de page.}
%\colorbox[gray]{0.9}{some words}                     %% colorier un paragraphe

\setlength{\parskip}{1ex plus 0.5ex minus 0.2ex}      %% Insert un espace verticale entre deux paragraphes
\onehalfspacing


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Personalisation entête et piede de page %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\pagestyle{fancy}

\lhead{}
\chead{}
\rhead{}
\lfoot{}
\cfoot{\thepage}
\rfoot{}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}

%\pageref{LastPage}									%% Insertion du numéro de la dernière page

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Style de la numérotation des titres %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\renewcommand{\thechapter}{\arabic{chapter}}
\renewcommand{\thesection}{\arabic{chapter}.\arabic{section}}
\renewcommand{\thesubsection}{\alph{subsection})}
%\renewcommand{\thesubsubsection}{\alph{subsubsection}.}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Commandes personnelles %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newcommand{\cit}{\emph}							%% citation en italique
\newcommand{\gras}{\textbf}							%% nom de programme en police teletype

\newcommand{\image}[3]								%% Commande d'insertion image + légende (ex. d'inclusion : \image{test}{Description de votre image}{0.7}
{
	\begin{figure}[H]
	\begin{center}
	\includegraphics[width=#3\textwidth]{img/#1.png}
	\caption{\textit{#2}}
	\label{img_#1}
	\end{center}
	\end{figure}
}
\newcommand{\subimage}[7]							%% Commande d'insertion image + légende (ex. d'inclusion : \image{test}{Description de votre image}{0.7}
{
	\begin{figure}[H]
	 \begin{center}
	   \leavevmode
	   \subfloat[#2]{\label{img_#1}\includegraphics[width=#3\textwidth]{img/#1}}
	   \hspace{2cm}
	   \subfloat[#5]{\label{img_#4}\includegraphics[width=#6\textwidth]{img/#4}}
	   \caption{#7}
	   \label{img_#1_#4}
	 \end{center}
	\end{figure}
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Environnements personnelles %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% Commande d'insertion d'une transition à la fin d'un chapitre %%
%\newenvironment{transition}{\section*{}}{\newpage}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Mise en page de l'insertion des codes sources %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\definecolor{gris_clair}{rgb}{0.9,0.9,0.9}

\lstset{% general command to set parameter(s)
	breaklines=true,
	backgroundcolor=\color{gris_clair},
	basicstyle=\small,					% print whole listing small
	commentstyle=\color{blue},			% blue comments
	stringstyle=\ttfamily,				% typewriter type for strings
	showstringspaces=false}				% no special string spaces
   
\lstdefinestyle{C++}
{
	language=C++,
	inputencoding=utf8,
	basicstyle=\footnotesize,breaklines=true,breakatwhitespace=true,tabsize=4,numbers=left,keywordstyle=\color{magenta}
}
\lstdefinestyle{Java}
{
	language=Java,
	inputencoding=utf8,
	basicstyle=\footnotesize,breaklines=true,breakatwhitespace=true,tabsize=4,numbers=left,keywordstyle=\color{magenta}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Mise en page de garde %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%

\makeatletter

% Une commande sembleble à \rlap ou \llap, mais centrant son argument
\def\clap#1{\hbox to 0pt{\hss #1\hss}}%
% Une commande centrant son contenu (à utiliser en mode vertical)
\def\ligne#1{%
  \hbox to \hsize{%
    \vbox{\centering #1}}}%
% Une comande qui met son premier argument à gauche, le second au 
% milieu et le dernier à droite, la première ligne ce chacune de ces
% trois boites coïncidant
\def\haut#1#2#3{%
  \hbox to \hsize{%
    \rlap{\vtop{\raggedright #1}}%
    \hss
    \clap{\vtop{\centering #2}}%
    \hss
    \llap{\vtop{\raggedleft #3}}}}%
% Idem, mais cette fois-ci, c'est la dernière ligne
\def\bas#1#2#3{%
  \hbox to \hsize{%
    \rlap{\vbox{\raggedright #1}}%
    \hss
    \clap{\vbox{\centering #2}}%
    \hss
    \llap{\vbox{\raggedleft #3}}}}%
% La commande \maketitle
\def\maketitle{%
  \thispagestyle{empty}\vbox to \vsize{%
    \haut{\@location \\ \@date}{}{\@author}
    \vfill
    \vfill
    \ligne{\Huge \textbf \@title}
    \vfill
    \vfill
    \bas{\@blurb}{}{Responsables : François Vallée \\ Sophie Colombié}
    }%
  \cleardoublepage
  }

% Les commandes permettant de définir la date, le lieu, etc.
\def\date#1{\def\@date{#1}}
\def\author#1{\def\@author{#1}}
\def\title#1{\def\@title{#1}}
\def\blurb#1{\def\@blurb{#1}}
\def\location#1{\def\@location{#1}}

\makeatother

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Mise en page de la table des matières %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\setcounter{tocdepth}{2}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Mise en page des titres %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% Style du titre "chapter" %%

\newcommand{\parttoccolor}{blue}
\newcommand{\chaptertoccolor}{Navy}
\newcommand{\sectiontoccolor}{blue}

\makeatletter
\def\@makechapterhead#1{%
	\vspace*{50\p@}%
	{\parindent \z@ \raggedright \normalfont
		\interlinepenalty\@M
		\ifnum \c@secnumdepth >\m@ne
			\Huge\bfseries \thechapter .
		\fi
		\Huge \bfseries #1\par\nobreak
		\vskip 40\p@
}}

\def\@makeschapterhead#1{%
	\vspace*{50\p@}%
	{\parindent \z@ \raggedright
		\normalfont
		\interlinepenalty\@M
		\Huge \bfseries  #1\par\nobreak
		\vskip 40\p@
}}
\renewcommand*\l@part[2]{%
  \ifnum \c@tocdepth >-2\relax
    \addpenalty{-\@highpenalty}%
    \addvspace{2.25em \@plus\p@}%
    \setlength\@tempdima{3em}%
    \begingroup
      \parindent \z@ \rightskip \@pnumwidth
      \parfillskip -\@pnumwidth
      {\leavevmode
       \large \bfseries \color{\parttoccolor}#1\hfil \hb@xt@\@pnumwidth{\hss\def\@linkcolor{\parttoccolor}#2}}\par
       \nobreak
         \global\@nobreaktrue
         \everypar{\global\@nobreakfalse\everypar{}}%
    \endgroup
  \fi}
\renewcommand*\l@chapter[2]{%
  \ifnum \c@tocdepth >\m@ne
    \addpenalty{-\@highpenalty}%
    \vskip 1.0em \@plus\p@
    \setlength\@tempdima{1.5em}%
    \begingroup
      \parindent \z@ \rightskip \@pnumwidth
      \parfillskip -\@pnumwidth
      \leavevmode \bfseries
      \advance\leftskip\@tempdima
      \hskip -\leftskip
      \color{\chaptertoccolor}#1\nobreak\
       \leaders\hbox{$\m@th
        \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
        mu$}\hfil\nobreak\hb@xt@\@pnumwidth{\hss
        \def\@linkcolor{\chaptertoccolor}#2}\par
      \penalty\@highpenalty
    \endgroup
  \fi}
\renewcommand*\l@section{\color{\sectiontoccolor}\def\@linkcolor{\sectiontoccolor}\@dottedtocline{1}{1.5em}{2.3em}}
\makeatother



